package com.aaa.datetime;

import org.junit.Test;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;


/**
 * @author C-Q
 * @version 1.1.0
 *
 * @Description: 日期和时间
 * LocalDate: 表示日期，包含年月日，格式为2019-10-16
 * LocalTime: 表示时间，包含时分秒，格式为16:38:54.158549300
 * LocalDateTime:表示日期时间，包含年月日，时分秒，格式为2018-09-06
 * DateTimeFormatter:日期时间格式化类
 * Duration:用于计算2个时间(LocalTime,时分秒)的距离
 * Period:用于计算2个日期(LocalDate,年月日)的距离
 *
 * @date 2022/11/7
 */
public class Test01 {
    //DateTimeFormate可以进行时间和字符串的转化
    public static void main(String[] args) {
        //1.把日期时间转化为指定格式的字符串
        LocalDateTime now = LocalDateTime.now();
        System.out.println("转化前的日期" + now);
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
        String format = now.format(dateTimeFormatter);
        System.out.println("转化后的日期" + format);
    }
    @Test
    public void date(){
        //2.把字符串转化为日期时间对象
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
        LocalDateTime parse = LocalDateTime.parse("2022/11/17 22:22:22",formatter);
        System.out.println("parse = " + parse);
    }
    @Test
    public void date1(){
        //创建一个指定日期时间的类
        LocalDateTime dateTime = LocalDateTime.of(2022, 10, 11, 17, 18, 16);
        //创建当前的日期时间对象
        LocalDateTime now = LocalDateTime.now();
        System.out.println("指定的日期和时间："+dateTime);
        System.out.println("当前的日期时间"+now);
    }
    @Test
    public void date2(){
        //获取一个指定的时间
        LocalTime of = LocalTime.of(11, 11, 11);
        //获取当前的时间
        LocalTime now = LocalTime.now();
        System.out.println("指定的时间："+of);
        System.out.println("当前的时间："+now);

        //时间类中的常用的方法
        System.out.println("获取时间的小时："+now.getHour());
        System.out.println("获取时间的分钟："+now.getMinute());
        System.out.println("获取时间的秒："+now.getSecond());
        System.out.println("获取时间的纳秒："+now.getNano());
    }
    @Test
    public void date3(){
        //创建一个LocalDate日期类。--创建指定的日期
        LocalDate of = LocalDate.of(2022, 9, 5);
        //创建一个当前日期
        LocalDateTime now = LocalDateTime.now();

        System.out.println("指定的日期："+of);
        System.out.println("当前的日期："+now);

        //日期类中的常见的方法
        System.out.println("获取日期的年份："+now.getYear());
        System.out.println("获取日期的月份："+now.getMonth().getValue());
        System.out.println("获取日期的星期："+now.getDayOfWeek());

    }
}
